package com.probiz.estore.customer.dao;

import java.math.BigDecimal;
import java.util.List;

import com.probiz.estore.common.model.customer.Consult;
import com.probiz.estore.core.dao.GenericDao;
import com.probiz.estore.core.search.SearchCriteria;
import com.probiz.estore.customer.model.ConsultSearchCriteria;
/**
 * Dao interface for Consult.
 */
public interface ConsultDao extends GenericDao<Consult> {
	/**
	 * 搜索咨询
	 * @param consultSearchCriteria
	 * @param searchCriteria
	 * @return
	 */
	public List<Consult> searchByCriteria(ConsultSearchCriteria consultSearchCriteria, SearchCriteria searchCriteria);
	
	/**
	 * 获得“我发表的咨询” 的个数
	 * @param customerId
	 * @return 
	 */
	public Integer[] getCountsOfCustomer(Integer customerId);
	
	/**
	 * 获得回复个数
	 * @param consultId
	 * @return
	 */
	public Long getReplyCountByConsultId(Integer consultId);
	/**
	 * 获得可见的回复个数
	 * @param consultId
	 * @return
	 */
	public Long getOnShowReplyCountByConsultId(Integer consultId);
	/**
	 * 获得商品的咨询个数
	 * @param productId
	 * @return
	 */
	public Long getConsultCountByProductId(Integer productId);
	/**
	 * 获得商品的可见咨询个数
	 * @param productId
	 * @return
	 */
	public Long getOnShowConsultCountByProductId(Integer productId);
	/**
	 * 获得咨询的所有可见回复
	 * @param consultId
	 * @return
	 */
	public List<Consult> getOnShowReplyListByConsultId(Integer consultId);
	
	
	/**
	 * 获得平台总咨询数量
	 * @return
	 */
	public Long countConsultTotal();
	/**
	 * 获取平台未回复的咨询数
	 * @return
	 */
	public Long countUnreplyConsultTotal();
}